package org.example.springioc.Configuration;

import org.example.springioc.model.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * 方法注解 @Bean, 在 Spring 框架的设计中，⽅法注解 @Bean 要配合类注解才能将对象正常的存储到 Spring 容器中
 */

//只定义一个对象的情况下

//@Configuration
//public class BeanConfig {
//    @Bean
//    public User user(){
//         User user = new User();
//         user.setName("zhangsan");
//         user.setAge(18);
//         return user;
//    }
//}

//定义多个对象
@Configuration
public class BeanConfig {
    //可以在 @Bean 后面添加给对象修改的名字和修改之前的名字
    //加上 @Primary 指定该 Bean 为默认 bean 的实现
    @Bean(name = {"u1","user1"})
    public User user1(){
        User user = new User();
        user.setName("zhangsan");
        user.setAge(18);
        return user;
    }

    //@Primary
    @Bean
    public User user2(){
        User user = new User();
        user.setName("lisi");
        user.setAge(18);
        return user;
    }
}
